package com.matt.service;

import com.matt.commons.dto.sso.StaffDTO;
import com.matt.domain.course.CoursePlanClasses;
import com.matt.foundation.query.AreaCourseQuery;
import com.matt.foundation.query.ClassesCoursePlanQuery;
import com.matt.foundation.vo.course.*;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2017/9/5
 * *******************************
 */
public interface CourseEarlyService {
    List<CoursePlanEarlyListVo> getPlanByAreaBetweenDays(String beginDate, String endDate, String areaId);

    Map childrenList(String planId);

    Boolean planChildren(String coursePlanClassesId, List<String> childIds);

    Boolean delete(String planId);

    List<CoursePlanClasses> submitPreWeekPlans(String date, String areaId);

    Page<AreaCourseListVo> getCoursePageByArea(AreaCourseQuery query);

    List<WebCourseListVo> getCourseListByArea(String areaId, String todayBegin);

    Page<PadTeacherCoursePlanListVo> getPadAllCoursePlan(ClassesCoursePlanQuery query, Boolean isTestUser);

    Page<PadTeacherCoursePlanListVo> getPadHistoryCoursePlan(ClassesCoursePlanQuery query, Boolean isTestUser);

    PadCoursePlanDetailVo getEarlyCourseDetail(String coursePlanClassesId);

    Boolean beginCourse(StaffDTO staff, List<Map> childrenCourseStatusDto, String[] teacherIds, String coursePlanClassesId);

    Page<PadTeacherCoursePlanListVo> getPadTodayCoursePlan(ClassesCoursePlanQuery query, Boolean isTestUser);

    Page<PadTeacherCoursePlanListVo> getPadWeekCoursePlan(ClassesCoursePlanQuery query, Boolean isTestUser);

    Page<PadTeacherCoursePlanListVo> getPadNextWeekCoursePlan(ClassesCoursePlanQuery query, Boolean isTestUser);
}
